Carleton University, School of Computer Science
95.402* Computer Graphics: Real-time 3D Graphics, Fall 2001

Times/Instructor:  Tues 7:30pm (3 hours) Room 3235 Mackenzie Engineering  W.R. Lalonde
TA: Not sure yet
Course Description: This course will provide students with two important skills: (a) Better understanding of large software development. (b) Better understanding of practical techniques that support real-time 3D graphics.
Course Goals: To develop a real-time 3D graphics game engine in C++. After the initial software provided, all subsequent development will be done by students in assignments and as part of the course project to be handed in at the end of the course. Your project must integrate all of the tasks developed in the assignments and additionally provides some novel facility related either to the game development environment or the run-time game facilities. Every student must develop a unique game so don't give away all your good ideas to your buddies. Every assignment serves as a stepping stone to further extensions that you might want to work on in parallel with the assignment work to help you be further along by the end of the course.
Main Book:	OpenGL Programming Guide (NOT THE REFERENCE MANUAL), 3nd Edition, Version 1.2 of OpenGL, Addison-Wesley (Don Mills, Ontario or Reading, Massachusetts), ISBN 0-201-46138-3. Older editions will almost be adequate.
Game Books:	Mark DeLoura, Game Programming Gems, Charles River Media, Inc., Rockland Mass. ISBN 1-58450-049-2
	Alan Watt, Fabio Policarpo, 3D Games: Real-time Rendering and Software Technology, Vol 1, Addison-Wesley, Toronto, ISBN 0201-6192-0.
	Tomas Moller, Eric Haines, Real-Time Rendering, A.K.Peters Ltd, Natick, Massachusetts, ISBN 1-56881-101-2.
References:	Any C++ book.
Software:	Microsoft Visual C++ with OpenGL (it's built into Microsoft Windows). 
Laboratory:	Fourth year floor labs (wherever they happen to be). You need machines with a game card like as an NVIDIA TNT or GEFORCE. You can't run game software without a good game card. 
Demo Time:	4-5 pm before class in the lab. You need to show others what you have so'll they'll know how far behind they really are.
Assignments:	Assignments MUST BE DONE ON TIME to pass the course. At most one can be missed. Assignments will not be marked but rather noted done or not done (if missing or too little actually works). Hand in a CD with everything so it can be compiled and tried (or the next best thing if you can't create CDs).
Project:	Includes all of the assignment software developed in addition to a unique facility/feature that might be the equivalent of at most two assignments worth of work. Students can work individually or in groups of two. However, each student must provide their own unique contribution. Hand in a CD with everything on it including a 2 or 3 page description of what is new. 
Marking:	Assignments 20% MUST BE DONE ON TIME (once a week with occasional lapses; i.e., many)
	Final Project 80%	Due 1 week after term ends but flexible. Best marks awarded to games with originality, great playability, solutions to high degree of difficulty tasks, and quality and quantity of software, including having a game-like quality. 
Web:	www.opengl.org and www.gdmag.com
